/**
 *
 */
package com.zhuoyue.elmt.entity;

import com.eit.eitsite.common.utils.excel.annotation.ExcelField;
import com.eit.eitsite.modules.sys.entity.Office;
import com.fasterxml.jackson.annotation.JsonIgnore;
import org.hibernate.validator.constraints.Length;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;

import com.eit.eitsite.common.persistence.DataEntity;

import javax.validation.constraints.NotNull;

/**
 * 维保人员备案Entity
 * @author chenhao
 * @version 2016-09-08
 */
public class MaintenanceStaff extends DataEntity<MaintenanceStaff> {
	
	private static final long serialVersionUID = 1L;
	private String maintenanceUnitId;		// 维保单位ID
	private String maintenanceUnitName;		// 维保单位名称
	private String staffName;		// 姓名
	private String staffSex;		// 性别
	private String staffIdcard;		// 身份证号
	private String staffPhoto;		// 相片
	private String certificateNo;		// 证书编号
	private String certificateAuthority;//证书颁发机构
	private Date effectiveDate;		// 证书生效日期
	private Date expirationDate;		// 证书失效日期
	private String certificateScan;		// 证书扫描件
	private String contactPhone;		// 联系电话(座机)
	private String fax;		// 传真
	private String mobileNumber;		// 手机号码
	private String email;		// 邮箱
	private String loginName;		// APP登录用户名
	private String passwd;		// APP登录密码
	private String status;		// 状态
	private String createdBy;		// 创建人
	private Date creationDate;		// 创建时间
	private String lastUpdateBy;		// 更新人
	private Date lastUpdateDate;		// 更新时间
	private String remark;		// 备注
	private String userRole; // 人员角色
	private String regpushid; // 推送对应号

	private String oldLoginName;// 原登录名
	private String newPassword;	// 新密码
	private String leader; // 是否组长 1是 0否

	private String workType; // 在职状态

    private String officeId;//维保小组ID
    private String officeName;//维保小组名称
    private String officeType;//维保小组类型

	// 查询条件
	private String deviceCode;
	private String wbdwdm;
	private String tzsbbh;

	public MaintenanceStaff() {
		super();
	}

	public MaintenanceStaff(String id){
		super(id);
	}

	@Length(min=0, max=20, message="维保单位ID长度必须介于 0 和 20 之间")
	public String getMaintenanceUnitId() {
		return maintenanceUnitId;
	}

	public void setMaintenanceUnitId(String maintenanceUnitId) {
		this.maintenanceUnitId = maintenanceUnitId;
	}
	
	@Length(min=0, max=20, message="维保单位名称长度必须介于 0 和 20 之间")
	public String getMaintenanceUnitName() {
		return maintenanceUnitName;
	}

	public void setMaintenanceUnitName(String maintenanceUnitName) {
		this.maintenanceUnitName = maintenanceUnitName;
	}
	
	@Length(min=0, max=30, message="姓名长度必须介于 0 和 30 之间")
	public String getStaffName() {
		return staffName;
	}

	public void setStaffName(String staffName) {
		this.staffName = staffName;
	}
	
	@Length(min=0, max=1, message="性别长度必须介于 0 和 1 之间")
	public String getStaffSex() {
		return staffSex;
	}

	public void setStaffSex(String staffSex) {
		this.staffSex = staffSex;
	}
	
	@Length(min=0, max=50, message="身份证号长度必须介于 0 和 50 之间")
	public String getStaffIdcard() {
		return staffIdcard;
	}

	public void setStaffIdcard(String staffIdcard) {
		this.staffIdcard = staffIdcard;
	}
	
	@Length(min=0, max=200, message="相片长度必须介于 0 和 200 之间")
	public String getStaffPhoto() {
		return staffPhoto;
	}

	public void setStaffPhoto(String staffPhoto) {
		this.staffPhoto = staffPhoto;
	}
	
	@Length(min=0, max=50, message="证书编号长度必须介于 0 和 50 之间")
	public String getCertificateNo() {
		return certificateNo;
	}

	public void setCertificateNo(String certificateNo) {
		this.certificateNo = certificateNo;
	}

	@Length(min=0, max=100, message="证书颁发机构长度必须介于 0 和 100 之间")
	public String getCertificateAuthority() { return certificateAuthority; }

	public void setCertificateAuthority(String certificateAuthority) {
		this.certificateAuthority = certificateAuthority;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getEffectiveDate() {
		return effectiveDate;
	}

	public void setEffectiveDate(Date effectiveDate) {
		this.effectiveDate = effectiveDate;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getExpirationDate() {
		return expirationDate;
	}

	public void setExpirationDate(Date expirationDate) {
		this.expirationDate = expirationDate;
	}
	
	@Length(min=0, max=200, message="证书扫描件长度必须介于 0 和 200 之间")
	public String getCertificateScan() {
		return certificateScan;
	}

	public void setCertificateScan(String certificateScan) {
		this.certificateScan = certificateScan;
	}
	
	@Length(min=0, max=60, message="联系电话(座机)长度必须介于 0 和 60 之间")
	public String getContactPhone() {
		return contactPhone;
	}

	public void setContactPhone(String contactPhone) {
		this.contactPhone = contactPhone;
	}
	
	@Length(min=0, max=60, message="传真长度必须介于 0 和 60 之间")
	public String getFax() {
		return fax;
	}

	public void setFax(String fax) {
		this.fax = fax;
	}
	
	@Length(min=0, max=60, message="手机号码长度必须介于 0 和 60 之间")
	public String getMobileNumber() {
		return mobileNumber;
	}

	public void setMobileNumber(String mobileNumber) {
		this.mobileNumber = mobileNumber;
	}
	
	@Length(min=0, max=100, message="邮箱长度必须介于 0 和 100 之间")
	public String getEmail() {
		return email;
	}

	public void setEmail(String email) {
		this.email = email;
	}
	
	@Length(min=0, max=50, message="APP登录用户名长度必须介于 0 和 50 之间")
	public String getLoginName() {
		return loginName;
	}

	public void setLoginName(String loginName) {
		this.loginName = loginName;
	}
	
	@Length(min=0, max=100, message="APP登录密码长度必须介于 0 和 100 之间")
	public String getPasswd() {
		return passwd;
	}

	public void setPasswd(String passwd) {
		this.passwd = passwd;
	}
	
	@Length(min=0, max=10, message="状态长度必须介于 0 和 10 之间")
	public String getStatus() {
		return status;
	}

	public void setStatus(String status) {
		this.status = status;
	}
	
	public String getCreatedBy() {
		return createdBy;
	}

	public void setCreatedBy(String createdBy) {
		this.createdBy = createdBy;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getCreationDate() {
		return creationDate;
	}

	public void setCreationDate(Date creationDate) {
		this.creationDate = creationDate;
	}
	
	public String getLastUpdateBy() {
		return lastUpdateBy;
	}

	public void setLastUpdateBy(String lastUpdateBy) {
		this.lastUpdateBy = lastUpdateBy;
	}
	
	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
	public Date getLastUpdateDate() {
		return lastUpdateDate;
	}

	public void setLastUpdateDate(Date lastUpdateDate) {
		this.lastUpdateDate = lastUpdateDate;
	}
	
	@Length(min=0, max=254, message="备注长度必须介于 0 和 254 之间")
	public String getRemark() {
		return remark;
	}

	public void setRemark(String remark) {
		this.remark = remark;
	}

	public String getUserRole() {
		return userRole;
	}

	public void setUserRole(String userRole) {
		this.userRole = userRole;
	}

	public String getRegpushid() {
		return regpushid;
	}

	public void setRegpushid(String regpushid) {
		this.regpushid = regpushid;
	}

	public String getOldLoginName() {
		return oldLoginName;
	}

	public void setOldLoginName(String oldLoginName) {
		this.oldLoginName = oldLoginName;
	}

	public String getNewPassword() {
		return newPassword;
	}

	public void setNewPassword(String newPassword) {
		this.newPassword = newPassword;
	}

	public String getLeader() {
		return leader;
	}

	public void setLeader(String leader) {
		this.leader = leader;
	}

	public String getTzsbbh() {
		return tzsbbh;
	}

	public void setTzsbbh(String tzsbbh) {
		this.tzsbbh = tzsbbh;
	}

	public String getDeviceCode() {
		return deviceCode;
	}

	public void setDeviceCode(String deviceCode) {
		this.deviceCode = deviceCode;
	}

	public String getWbdwdm() {
		return wbdwdm;
	}

	public void setWbdwdm(String wbdwdm) {
		this.wbdwdm = wbdwdm;
	}

	public String getWorkType() {
		return workType;
	}

	public void setWorkType(String workType) {
		this.workType = workType;
	}

    @JsonIgnore
    @NotNull(message="归属小组不能为空")
    @ExcelField(title="归属小组", align=2, sort=25)
    public String getOfficeId() {
        return officeId;
    }

    public void setOfficeId(String officeId) {
        this.officeId = officeId;
    }

    public String getOfficeName() {
        return officeName;
    }

    public void setOfficeName(String officeName) {
        this.officeName = officeName;
    }

    public String getOfficeType() {
        return officeType;
    }

    public void setOfficeType(String officeType) {
        this.officeType = officeType;
    }
}